<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<img src="http://www.baidu.com/img/baidu_sylogo1.gif" width="270" height="129">
<img src="http://www.planeart.cn/demo/imgZoom/_demo/b2.jpg" alt="">
<button id="test">TestButton</button>
<script type="text/javascript">

    var testNode = document.getElementById('test');
    window.addEventListener('load', function () {
        console.log('window onload!');
    }, false);
    document.addEventListener('DOMContentLoaded', function () {
        console.log('ready fn1!');
    }, false);
    document.addEventListener('DOMContentLoaded', function () {
        console.log('ready fn2!');
    }, false);
    document.addEventListener('DOMContentLoaded', function () {
        console.log('ready fn3!');
    }, false);
    testNode.addEventListener('click', function () {
        console.log('click fn1!');
    }, false);
    testNode.addEventListener('click', function () {
        console.log('click fn2!');
    }, false);
    testNode.addEventListener('click', function () {
        console.log('click fn3!');
    }, false);
    (function (document, window) {
        var ln = {
            /**
                问题：这一句，是否可以去掉？
                document.removeEventListener('DOMContentLoaded', arguments.callee, false);

                @hehe123-杭州 ：这样去掉应该是没影响了.
                只是一个习惯, 完成了某些事件就给接绑. (我在某些事件的处理上也和上面的一样), 防止为解绑出现的其他事件bug.

                @ JK（加宽）  16:13:39
                 理论上，移掉可以释放callback的引用。。。
            请教出来的结果：
             1.性能｛我自己没有测试，应该是有点性能问题｝
             2.user strict会报错。

             * @param callback
             */
            readyV1:function (callback) {
                var readyFn = function () {
                    document.removeEventListener('DOMContentLoaded', readyFn, false);
                    callback();
                };
                document.addEventListener('DOMContentLoaded', readyFn, false);
            },
            readyV2:function (callback) {
                document.addEventListener('DOMContentLoaded', function () {
                    document.removeEventListener('DOMContentLoaded', arguments.callee, false);
                    callback();
                }, false);
            }
        };
        window.ln = ln;
    }(document, window));
    ln.ready(function () {
        console.log('ready!!!!');
    });
</script>
</body>
</html>